#include "stm32f10x.h"                  // Device header
#include "Delay.h"

uint8_t Keynum=0;

uint8_t KeyGet(void)
{
   if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_14)==0)
	 {
	     Delay_ms(20);
		 while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_14)==0)
			 Delay_ms(20);
			 Keynum++;
	 }
	 return Keynum;
}



int main(void)
{	
	RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA,ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6 | GPIO_Pin_7;
	GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	GPIO_SetBits(GPIOA, GPIO_Pin_6 | GPIO_Pin_7);
	
	RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB,ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure1;
	GPIO_InitStructure1.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStructure1.GPIO_Pin=GPIO_Pin_0 | GPIO_Pin_1;
	GPIO_InitStructure1.GPIO_Speed= GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_InitStructure1);
	GPIO_SetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1);
	
	RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC,ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure2;
	GPIO_InitStructure2.GPIO_Mode=GPIO_Mode_IPU;
	GPIO_InitStructure2.GPIO_Pin=GPIO_Pin_14;
	GPIO_InitStructure2.GPIO_Speed= GPIO_Speed_50MHz;
	GPIO_Init(GPIOC,&GPIO_InitStructure2);
	
	
	
	while(1)
	{
		KeyGet();
while(Keynum<=3)
{  
	  KeyGet();
  	if(Keynum==1)
{
  GPIO_WriteBit(GPIOB, GPIO_Pin_0 | GPIO_Pin_1, Bit_RESET);
	GPIO_WriteBit(GPIOA, GPIO_Pin_6 | GPIO_Pin_7, Bit_RESET);
}

  else if(Keynum==2)
{
  GPIO_WriteBit(GPIOB, GPIO_Pin_0 | GPIO_Pin_1, Bit_SET);
	GPIO_WriteBit(GPIOA, GPIO_Pin_6 | GPIO_Pin_7, Bit_SET);
} 
  else if(Keynum==3)
{
  GPIO_WriteBit(GPIOB, GPIO_Pin_0 | GPIO_Pin_1, Bit_RESET);
	GPIO_WriteBit(GPIOA, GPIO_Pin_6 | GPIO_Pin_7, Bit_RESET);
	Delay_s(1);
	GPIO_WriteBit(GPIOB, GPIO_Pin_0 | GPIO_Pin_1, Bit_SET);
	GPIO_WriteBit(GPIOA, GPIO_Pin_6 | GPIO_Pin_7, Bit_SET);
	Delay_s(1);
}
}
 Keynum=1;

	
     
	}
	
}
